import tensorflow as tf

"""
    1、可以实现多个相同变量的共存，通过scope。
    2、可以实现变量的复用，reuse scope 下面的 initializer，实现无创建，有就拿到。

    variable 和 scope variable 复制、获取值的使用
"""
if __name__ == '__main__':
    v = tf.get_variable('v', [1], initializer=tf.constant_initializer(1.0))

    with tf.variable_scope("foo"):
        v2 = tf.get_variable('v', shape=[1], initializer=tf.constant_initializer(2.0))

    with tf.variable_scope("foo", reuse=True):
        v3 = tf.get_variable('v', shape=[1])

    with tf.variable_scope("", reuse=True):
        v4 = tf.get_variable('v')
        v5 = tf.get_variable('foo/v', shape=[1])
        v6 = tf.get_variable('foo/v', shape=[1]) + v

    var6 = tf.get_variable('v6', [1, 2], initializer=tf.random_normal_initializer([1, 2]))

    with tf.Session() as session:

        session.run(tf.global_variables_initializer())
        print(session.run([v, v2, v3, v4, v5, v6, var6]))
        print(tf.get_variable_scope().reuse)
